package com.avic.rong.userOrder.activity;

import android.net.http.SslError;
import android.os.Bundle;
import android.view.View;
import android.webkit.SslErrorHandler;
import android.webkit.WebChromeClient;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;

import com.avic.rong.BaseActivity;
import com.avic.rong.R;
import com.avic.rong.api.HttpPostService;
import com.avic.rong.wedgit.loadingLayout.LoadingLayout;

import butterknife.BindView;
import butterknife.ButterKnife;

public class PayAgreenActivity extends BaseActivity {


    @BindView(R.id.web_agreen)
    WebView webview;
    @BindView(R.id.loading_layout)
    LoadingLayout loading_layout;
    private boolean isError = false;
    @Override
    protected int getContentViewId() {
        return R.layout.activity_pay_agreen;
    }

    @Override
    protected void initView() {
        tvTitle.setText("支付协议");
        loading_layout.setStatus(LoadingLayout.LOADING);
        webview.loadUrl(HttpPostService.payAgreen);
        WebSettings webSettings = webview.getSettings();
        /**
         * setAllowFileAccess 启用或禁止WebView访问文件数据 setBlockNetworkImage 是否显示网络图像
         * setBuiltInZoomControls 设置是否支持缩放 setCacheMode 设置缓冲的模式
         * setDefaultFontSize 设置默认的字体大小 setDefaultTextEncodingName 设置在解码时使用的默认编码
         * setFixedFontFamily 设置固定使用的字体 setJavaSciptEnabled 设置是否支持Javascript
         * setLayoutAlgorithm 设置布局方式 setLightTouchEnabled 设置用鼠标激活被选项
         * setSupportZoom 设置是否支持变焦
         */
        webSettings.setBuiltInZoomControls(false);// 隐藏缩放按钮
        webSettings.setAppCacheEnabled(false);
        webSettings.setCacheMode(WebSettings.LOAD_NO_CACHE);
        webSettings.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.NARROW_COLUMNS);// 排版适应屏幕
        webSettings.setUseWideViewPort(true);// 可任意比例缩放
        webSettings.setLoadWithOverviewMode(true);// setUseWideViewPort方法设置webview推荐使用的窗口。setLoadWithOverviewMode方法是设置webview加载的页面的模式。
        webSettings.setSaveFormData(true);// 保存表单数据
        webSettings.setSavePassword(false);//不保存密码
        webSettings.setJavaScriptEnabled(true);//设置与js交互
        // 设置允许JS弹窗
        webSettings.setJavaScriptCanOpenWindowsAutomatically(true);
        webSettings.setGeolocationEnabled(true);// 启用地理定位
        webSettings.setGeolocationDatabasePath("/data/data/org.itri.html5webview/databases/");// 设置定位的数据库路径
        webSettings.setDomStorageEnabled(true);

        //运行webview通过URI获取安卓文件
        webSettings.setAllowFileAccess(true);

        webview.setWebViewClient(new WebViewClient() {
            /**
             * 拦截 url 跳转,在里边添加点击链接跳转或者操作
             */
            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url) {
                webview.loadUrl(url);
                loading_layout.setStatus(LoadingLayout.SUCCESS);
                return true;
            }

            /**
             * 在结束加载网页时会回调
             */
            @Override
            public void onPageFinished(WebView view, String url) {
                super.onPageFinished(view, url);
                if (!isError) {
                    loading_layout.setStatus(LoadingLayout.SUCCESS);
//                    jsBridge.invokeJs("setBody", "");
//                    jsFontSize();
                }

            }

            /**
             * 加载错误的时候会回调，在其中可做错误处理，比如再请求加载一次，或者提示404的错误页面
             */
            @Override
            public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
                super.onReceivedError(view, errorCode, description, failingUrl);
                // 这里进行无网络或错误处理，具体可以根据errorCode的值进行判断，做跟详细的处理。
                isError = true;
            }

            /**
             * 当接收到https错误时，会回调此函数，在其中可以做错误处理
             */
            @Override
            public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {
//                super.onReceivedSslError(view, handler, error);
                handler.proceed();
            }

        });
        webview.setWebChromeClient(new WebChromeClient());
//        webview.addJavascriptInterface(jsBridge, "java");
    }

    @Override
    protected void addListener() {

    }



}
